class PaginasCategoriasController < ApplicationController  
  verify  :method => :post, 
          :only => [ :insertar, :actualizar ],
          :redirect_to => { :action => :listar }
          
  before_filter :validar_admin, :only => [ :listar_admin, :nueva, :insertar, :editar, :actualizar, :ordenar, :borrar ]
  before_filter :cargar_pagina_categoria, :only => [ :editar, :actualizar, :borrar, :imposible_borrar ]

  
  def listar_admin
      @paginas_categorias = PaginasCategoria.find( :all, :order => 'orden asc' )
  end
  
  def ordenar
    params["orden"].each_with_index do |id, index|
      paginas_categoria = PaginasCategoria.find_by_id( id );
      paginas_categoria.orden = (index+1) * 10
      paginas_categoria.save
    end
    
    flash[:info] = "El orden se ha actualizado correctamente"
    redirect_to admin_paginas_categorias_listar_url
  end

  
  def nueva
    @paginas_categoria = PaginasCategoria.new
  end
  
  def insertar
    @paginas_categoria = PaginasCategoria.new( params[:paginas_categoria] )
    
    if @paginas_categoria.save
      flash[:info] = 'Página creada muy bien.'
      redirect_to admin_paginas_categorias_listar_url
    else
      flash[:error] = 'Algún error se ha producido, vuelve a intentarlo.'
      render :action => 'nueva'
    end
  end
  
  def editar
  end
  
  def actualizar
    @paginas_categoria.update_attributes( params[:paginas_categoria] )
    
    if @paginas_categoria.save
      flash[:info] = 'Página actualizado muy bien.'
      redirect_to admin_paginas_categorias_listar_url
    else
      flash[:error] = 'Algún error se ha producido, vuelve a intentarlo.'
      render :action => 'editar'
    end    
  end  
  
  def borrar    
    if( @paginas_categoria.paginas.size > 0 )
      flash[:error] = 'No se puede borrar esta categoría de página.'
      redirect_to admin_paginas_categorias_imposible_borrar_url( @paginas_categoria.id )
    else
    
      if @paginas_categoria.destroy
        flash[:info] = 'Categoría de Página borrada muy bien.'
        redirect_to :action => 'listar_admin'
      else
        flash[:error] = 'Algún error se ha producido, vuelve a intentarlo.'
        redirect_to admin_paginas_categorias_listar_url
      end
      
    end
  end
  
  def imposible_borrar
  end

  protected
    def menu_activado
      # nada
    end
    
    def cargar_pagina_categoria
      @paginas_categoria = PaginasCategoria.find_by_id( params[:id] )

      if not @paginas_categoria
        render_404
      end
    end
end